package advance;


import java.awt.Component;

import javax.sound.sampled.Clip;

import map.AbstractMap;
import mapelements.background.Background;

import errors.DimensionNotAcceptableException;

/**rappresenta la mappa che viene utilizzata dal nostro editor. la mappa è facilmente
 * scalabile in quanto gli attributi base sono già presenti nella AbstractMap. Eventuali
 * aggiunte possono essere inserite facilmente all'interno di questa classe.
 * 
 * @author Koldar
 * @version 1.3
 */
public class GameMap extends LevelBasedMap{
	
	private static final long serialVersionUID = -2249616408785038366L;
	
	/**rappresenta la musica <strong>tipica</strong> della mappa. cio' non vuole che altre musiche non possano essere suonate in tale mappa*/
	//protected Clip music;
	/**rappresenta una sintesi compatta della mappa, richiamabile tramite {@link #toString()}*/
	protected String title;
	
	public GameMap(String _title, int _mapresolution,int width,int height,Background background) throws DimensionNotAcceptableException{
		super(_mapresolution,width,height,background);
		this.title=_title;
	}
	
	public GameMap(String _title, int _mapresolution,int width,int height) throws DimensionNotAcceptableException{
		super(_mapresolution,width,height,null);
		this.title=_title;
	}

	/**
	 * @return the music
	 */
	public Clip getMusic() {
		return null;//music;
	}
	/**
	 * @param music the music to set
	 */
	public void setMusic(Clip music) {
		//this.music = music;
	}
	/**
	 * @return the title
	 */
	public String getTitle() {
		return title;
	}
	/**
	 * @param title the title to set
	 */
	public void setTitle(String title) {
		//TODO mettere dei listener al titolo (se e solo se sonoindispensabili!)
		this.title = title;
	}
	
	@Override
	public GameMap clone() throws CloneNotSupportedException{
		GameMap cloned=(GameMap)super.clone();
		return cloned;
	}

	@Override
	public void setMap(AbstractMap othermap) {
		super.setMap(othermap);
	}

	@Override
	public void setDrawingComponent(Component parent)throws NullPointerException {
		super.setDrawingComponent(parent);
	}
	
	@Override
	public void terminate(){
		super.terminate();
	}
	
	
	
	
	
	
}
